<script>
  /*
声明一个Car的class
有静态属性
- MaxSpeed最大速度120
- StatusRunning = '运行中'
- StatusStop = '熄火'
有属性
- speed 速度（私有）
- brand 品牌
- color 颜色
- status状态（默认状态熄火）（私有）
有方法
- start() 设置状态为运行中
- stop() 设置状态为熄火
- accelerate()加速，每运行一次提速10，只有运行中的才能提速，不能超过最大速度
- slowdown()减速，每运行一次减速10，只有运行中的才能减速，不能低于0
- brake() 刹车，速度重置为0
- setColor() 设置颜色
- toString() 返回 "x颜色y品牌的车，状态：？？，速度：？？"
*/
  class Car {
    static MaxSpeed = 120
    static StatusRunning = '运行中'
    static StatusStop = '熄火'

    #speed = 0
    #brand
    #color
    #status = Car.StatusStop

    constructor(brand, color) {
      this.#brand = brand
      this.#color = color
    }
    start() {
      this.#status = Car.StatusRunning
    } // 设置状态为运行中
    stop() {
      this.#status = Car.StatusStop
      this.#speed = 0
    } // 设置状态为熄火
    accelerate() {
      if(this.#status === Car.StatusRunning) {
        const a = this.#speed + 50
        this.#speed = a > Car.MaxSpeed
          ? Car.MaxSpeed : a
      }
    } //加速，每运行一次提速10，只有运行中的才能提速，不能超过最大速度
    slowdown() {
      if(this.#status === Car.StatusRunning) {
        const a = this.#speed - 50
        this.#speed = a < 0 ? 0 : a
      }
    } //减速，每运行一次减速10，只有运行中的才能减速，不能低于0
    brake() {
      this.#speed = 0
    } //刹车，速度重置为0
    setColor(c) {
      this.#color = c
    } //设置颜色
    toString() {
      return `${this.#color}颜色${
        this.#brand}品牌的车，状态：${
          this.#status
        }，速度：${this.#speed}km/小时`
    } //返回 "x颜色y品牌的车，状态：？？，速度：？？"
  }

  const car = new Car('布加迪威龙', '白色')
  console.log(car.toString())
  car.accelerate()
  console.log(car.toString())
  car.start()
  car.accelerate()
  car.accelerate()
  car.accelerate()
  car.accelerate()
  console.log(car.toString())
</script>
